package com.senseilearning.sensei;

import java.io.Serializable;
import java.util.ArrayList;

/**
 * @author Paul
 * @comment Class voor woorden. Een word is onderdeel van een sectie. Bij een
 *          Japanse woordjesapp is word1 het japanse woord en word2 de
 *          nederlandse. Tags kunnen worden gebruikt om woorden te groeperen
 *          voor o.a. "welke hoort er niet bij". Class moet nog uitgebreid
 *          worden met scores voor ieder woord. -> maar hoe opslaan?
 */
@SuppressWarnings("serial")
public class Word implements Serializable {
	private String word1;
	private String word2;
	private ArrayList<String> tags = new ArrayList<String>();
	
	/*
	 * Each word has its own activations, decays and alpha values
	 */
	private double [] activations; // times of each encounter, the length equals the number of encounters
	private double decayRate;  // decayRates for each encounter	
	private double alpha;		   // alpha value
	

	public void setWord1(String word1) {
		this.word1 = word1;
	}

	public void setWord2(String word2) {
		this.word2 = word2;
	}

	public void addTags(String t) {
		tags.add(t);
	}

	public String getWord1() {
		return word1;
	}

	public String getWord2() {
		return word2;
	}

	public ArrayList<String> getTags() {
		return tags;
	}
	
	public void setTags(ArrayList<String> tags) {
		this.tags = tags;
	}

	public double[] getActivations() {
		return activations;
	}
	
	public void setActivations(double[] activations) {
		this.activations = activations.clone();
	}

	public double getDecayRate() {
		return decayRate;
	}

	public void setDecayRates(double decayRate) {
		this.decayRate = decayRate;
	}

	public double getAlpha() {
		return alpha;
	}

	public void setAlpha(double alpha) {
		this.alpha = alpha;
	}

	@Override
	public String toString() {
		return word1 + " " + word2;
	}

}